package com.nnnu.wsnackshop.service;

import com.nnnu.wsnackshop.pojo.dto.AddTagDTO;
import com.nnnu.wsnackshop.pojo.dto.TagQueryDTO;
import com.nnnu.wsnackshop.pojo.dto.UpdateTagDTO;
import com.nnnu.wsnackshop.pojo.entity.Tags;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nnnu.wsnackshop.pojo.vo.TagVO;
import com.nnnu.wsnackshop.result.PageResult;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

/**
 * <p>
 * 商品标签 服务类
 * </p>
 *
 * @author zk
 * @since 2025-05-14
 */
public interface ITagsService extends IService<Tags> {

    PageResult<TagVO> pageTags(TagQueryDTO dto);

    void addTag(AddTagDTO dto);

    void updateTag(UpdateTagDTO dto);

    void updateStatus(Long id, Integer status);

    TagVO getDetail(Long id);

    void deleteTags(List<Integer> ids);

    void exportTags(HttpServletResponse response) throws IOException;

    void importTags(MultipartFile file) throws IOException;

    void downloadTemplate(HttpServletResponse response) throws IOException;

    // 用户端新增方法
    List<TagVO> getAllEnabledTags();

    List<TagVO> batchGetEnabledTags(List<Long> ids);

    List<TagVO> searchEnabledTags(String keyword);

    List<TagVO> getPopularTags(Integer limit);
}
